package top.milkbox.service;

import com.github.pagehelper.PageInfo;
import org.springframework.web.multipart.MultipartFile;
import top.milkbox.domain.Post;
import com.baomidou.mybatisplus.extension.service.IService;
import top.milkbox.domain.base.PostBase;

import java.util.List;

/**
 * @author xiaoguo
 * @description 针对表【tb_post】的数据库操作Service
 * @createDate 2022-10-23 16:55:21
 */
public interface PostService extends IService<Post> {

    /**
     * 保存一条帖子
     *
     * @param token    用户设备的token
     * @param fileList 图片数组
     * @param content  帖子内容
     * @return 保存成功返回true
     */
    Boolean savePost(String token, MultipartFile[] fileList, String content);

    /**
     * 分页查询
     *
     * @param token             设备token，非必须
     * @param pageNum           第几页
     * @param pageSize          每一页查询的条数
     * @param isCollectionLimit null不限制收藏查询，1表示擦互相收藏的，0表示查询未收藏的
     * @return PageInfo<Post>
     */
    PageInfo<Post> selectPage(
            String token, Integer pageNum, Integer pageSize, Integer isCollectionLimit
    );

    /**
     * 通过postId查询这一条帖子的所有详细的信息
     *
     * @param postId 帖子的id
     * @return 返回post全部数据
     */
    Post selectOneAll(String token, Integer postId);

    /**
     * 预处理post
     * 将image字段转为imageList字段
     * 其他操作.........
     * <p>
     * 例如：
     * "postImage_XXXXX.png,postImage_BBBBB.png"
     * 处理后变为集合
     * ["https://XXX/XXX/postImage_XXXXX.png", "https://XXX/XXX/postImage_BBBBB.png"]
     *
     * @param post post对象
     */
    void preprocessingPost(Post post);

}
